iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0

什麼是DevOps?

DevOps是「開發」(Development)和「維運」(Operations)的縮寫,旨在消除「軟體開發人員(Dev)」和「運維技術人員(Ops)」之間的隔閡。

  • 軟體開發人員(Dev):編寫和測試程式
  • 運維技術人員(Ops):佈署和維護程式

傳統上,開發和運維是兩個不同的團隊,開發人員關注編寫程式、創新功能,而運維人員則專注於維護系統穩定性。這種模式可能導致「程式完成但無法快速部署」的情況,開發和運維脫節,就會出現 "It Works On My Machine. (它在我的電腦上執行正常)" 的狀況QAQ

https://ithelp.ithome.com.tw/upload/images/20240916/20169492aCqn2iHcjP.png


為什麼DevOps如此重要?

1. 加快軟體交付速度

傳統的開發和運維模式往往導致軟體交付週期過長,因為兩者之間的溝通通常較為緩慢。實施DevOps後,開發和運維可以實時同步進度,顯著提高軟體交付的速度。

2. 提高軟體品質

DevOps強調持續集成(CI)和持續交付(CD),這意味著每次提交的程式都會進行自動測試,並在所有測試通過後自動部署到生產環境中,從而最大限度地降低錯誤發生的機率,確保交付的軟體品質。

3. 自動化運維工作

運維自動化是DevOps的核心之一。通過編寫自動化腳本來處理部署、監控和測試等重複性工作,可以減少人為錯誤並提升效率,讓開發和運維人員能夠專注於更具價值的任務。

DevOps透過文化、流程和工具的整合,促進團隊之間的緊密合作,從而縮短軟體交付的週期,讓「程式開發 → 測試 → 上線」的過程更加快速、高效和穩定。它不僅僅是一套工具或技術,更是一種文化和方法論,強調團隊之間的協作、溝通和自動化。

通過實施DevOps,開發與運維之間的壁壘逐漸消失,這兩個團隊不再是獨立角色,而是 持續協作 的夥伴。這種協作不僅限於技術層面,更是一種團隊文化的轉變。

https://ithelp.ithome.com.tw/upload/images/20240916/20169492in6xSPmizt.jpg


DevOps 的方法

常見的 DevOps 方法有 Scrum、Kanban 和 Agile,它們通過強化團隊協作與持續改進來加速開發流程。Scrum 透過短週期開發(如衝刺)來加速進度,而 Kanban 則專注於管理進行中的工作。這些方法與 DevOps 工具鏈相結合,有效簡化了從開發到部署的每個步驟。

DevOps 工具鏈

DevOps 工具鏈涵蓋了從規劃到監控的每個階段,常見工具有:

  • Plan 規劃:Jira, Trello
  • Code 編寫程式:GitHub, GitLab
  • Build 構建:Docker, Maven, Artifactory
  • Test 測試:Selenium, JUnit
  • Deploy 部署: Jenkins, Kubernetes, Docker, Jira
  • Operate 維運: Ansible, Puppet, Otter
  • Monitor 運行與監控:DataDog, Grafana, Splunk

DevOps 實踐

DevOps 強調自動化與持續改進,常見的實踐包括:

  • 持續集成( Continuous Integration ):確保程式及時測試並整合到主分支
  • 持續交付( Continuous Delivery ):自動化將測試通過的程式部署至預生產或生產環境
  • 基礎設施即程式(IaC):使用程式碼(而非手動程序和設定),來佈建和支援運算基礎設施的能力。將基礎設施管理自動化,提升系統的可擴展性和穩定性。

小結

今天我們簡單介紹了DevOps的基本概念,探討了它對軟體開發和運維之間協作的影響。DevOps不僅是一種技術,更多是一種文化,強調開發和運維團隊之間的協作與自動化。而接下來的日子裡,我們將從實作的角度,逐步掌握這些核心技能!


預告

明天,我們將開始進行具體的實作!首先,我會帶大家申請一個 Azure DevOps 帳號,並使用這個平台來建立我們的第一個專案。Azure DevOps 提供了包括 版本控制、CI/CD、自動化測試 等多種功能,幫助團隊快速交付高質量的軟體。敬請期待!


參考文件


上一篇
Day01 - DevOps實踐挑戰目標與計劃
下一篇
Day03 - 使用 Azure DevOps 加速交付
系列文
DevOps菜鳥的30天實踐挑戰:從 CI/CD Pipeline 到雲端佈署12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言